package com.woniuedu.aclservice.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuedu.aclservice.entity.Permission;

import java.util.List;

/**
 * <p>
 * 权限 服务类
 * </p>
 *
 * @author testjava
 * @since 2020-01-12
 */
public interface PermissionService extends IService<Permission> {

   /**
    * Description : TODO  获取全部菜单<br/>
    * ChangeLog : 1. 创建 (2022/4/20 19:25 [ykq11]);
    * *
    * @return java.util.List<com.woniuedu.aclservice.entity.Permission>
    **/
    List<Permission> queryAllMenu();

   /**
    * Description : TODO   //根据角色获取菜单<br/>
    * ChangeLog : 1. 创建 (2022/4/20 19:26 [ykq11]);
    ** @param roleId
    * @return java.util.List<com.woniuedu.aclservice.entity.Permission>
    **/
    List<Permission> selectAllMenu(String roleId);

    /**
     * Description : TODO      //给角色分配权限<br/>
     * ChangeLog : 1. 创建 (2022/4/20 19:26 [ykq11]);
     ** @param roleId
     * @param permissionId
     * @return void
     **/
    void saveRolePermissionRealtionShip(String roleId, String[] permissionId);

   /**
    * Description : TODO   //递归删除菜单<br/>
    * ChangeLog : 1. 创建 (2022/4/20 19:26 [ykq11]);
    ** @param id
    * @return void
    **/
    void removeChildById(String id);

  /**
   * Description : TODO    //根据用户id获取用户菜单<br/>
   * ChangeLog : 1. 创建 (2022/4/20 19:26 [ykq11]);
   ** @param id
   * @return java.util.List<java.lang.String>
   **/
    List<String> selectPermissionValueByUserId(String id);

    List<JSONObject> selectPermissionByUserId(String id);

/**
 * Description : TODO      //获取全部菜单<br/>
 * ChangeLog : 1. 创建 (2022/4/20 19:26 [ykq11]);
 * *
 * @return java.util.List<com.woniuedu.aclservice.entity.Permission>
 **/
    List<Permission> queryAllMenuGuli();

/**
 * Description : TODO      //递归删除菜单<br/>
 * ChangeLog : 1. 创建 (2022/4/20 19:26 [ykq11]);
 ** @param id
 * @return void
 **/
    void removeChildByIdGuli(String id);

/**
 * Description : TODO      //给角色分配权限<br/>
 * ChangeLog : 1. 创建 (2022/4/20 19:27 [ykq11]);
 ** @param roleId
 * @param permissionId
 * @return void
 **/
    void saveRolePermissionRealtionShipGuli(String roleId, String[] permissionId);
}
